package cn.fl.ref.scmbaseinfo.transform;

import java.util.ArrayList;
import java.util.List;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import cn.cmm.base.framework.exception.BaseException;
import cn.cmm.base.framework.utils.BaseLogUtils;
import cn.fl.ref.scmbaseinfo.vo.ScmBaseInfoVO;
import cn.fl.ref.scmbaseinfo.vo.ScmChrgParaVO;
import fl.ref.scmbaseinfo.constant.ScmInfoConstant.EX_CODE;
import fl.ref.scmbaseinfo.dto.ScmBscInfoDTO;
import fl.ref.scmbaseinfo.dto.ScmChrgParaDTO;

public class ScmBaseInfoVOTransform {
	
	private static final Logger logger = LoggerFactory.getLogger(ScmBaseInfoVOTransform.class);	
	
	
	public static ScmBaseInfoVO toVO(ScmBscInfoDTO dto){
		ScmBaseInfoVO vo = new ScmBaseInfoVO();
		if(dto != null){
			try {
				vo.setFncScmId(dto.getFncScmId());;
				vo.setBsFlotupRto(dto.getBsFlotupRto());
				vo.setCmtExrtSwp(dto.getCmtExrtSwp());
				vo.setCmtIntrtSwp(dto.getCmtIntrtSwp());
				vo.setCrId(dto.getCrId());
				vo.setCrtPsn(dto.getCrtPsn());
				vo.setCrtTm(dto.getCrtTm());
				vo.setDcnRate(dto.getDcnRate());
				vo.setEddt(dto.getEddt());
				vo.setExrtRskCntr(dto.getExrtRskCntr());
				vo.setExrtSwpBnk(dto.getExrtSwpBnk());
				vo.setExrtSwpFeert(dto.getExrtSwpFeert());
				vo.setExstExrtRsk(dto.getExstExrtRsk());
				vo.setExstIntrtRsk(dto.getExstIntrtRsk());
				vo.setFncCrdnlt(dto.getFncCrdnlt());
				vo.setFncInsId(dto.getFncInsId());
				vo.setFncIntrtTot(dto.getFncIntrtTot());
				vo.setFncScmNm(dto.getFncScmNm());
				vo.setFncTrm(dto.getFncTrm());
				vo.setIntrtRskCntr(dto.getIntrtRskCntr());
				vo.setIntrtSwpBnk(dto.getIntrtSwpBnk());
				vo.setIntrtSwpFeert(dto.getIntrtSwpFeert());
				vo.setIrr(dto.getIrr());
				vo.setIrtBs(dto.getIrtBs());;
				vo.setIsDel(dto.getIsDel());
				vo.setIsValid(dto.getIsValid());
				vo.setMrgnClCrdnlt(dto.getMrgnClCrdnlt());
				vo.setMrgnPct(dto.getMrgnPct());
				vo.setMrgnUseMtd(dto.getMrgnUseMtd());
				vo.setPdId(dto.getPdId());
				vo.setPrymMtd(dto.getPrymMtd());
				vo.setRepyTp(dto.getRepyTp());
				vo.setRmrk(dto.getRmrk());
				vo.setScmSt(dto.getScmSt());
				vo.setStdt(dto.getStdt());
				vo.setUpdTm(dto.getUpdTm());
				vo.setUptPsn(dto.getUptPsn());
				vo.setMrgnWthrInPay(dto.getMrgnWthrInPay());
				vo.setWthrFstPay(dto.getWthrFstPay());
				vo.setIrtTpcd(dto.getIrtTpcd());
				vo.setWthrSupAbr(dto.getWthrSupAbr());
				vo.setBusType(dto.getBusType());
				vo.setScmIntrt(dto.getScmIntrt());//
				vo.setIntrtMtdcd(dto.getIntrtMtdcd());//
				vo.setChrgList(toCharVOList(dto.getChrgList()));//
				vo.setIsGuarantee(dto.getIsGuarantee());//是否担保 1. 是 2.否
				vo.setGuaranteeBody(dto.getGuaranteeBody());//担保主体
				vo.setGuaranteeStart(dto.getGuaranteeStart());//担保开始日期
				vo.setGuaranteeEnd(dto.getGuaranteeEnd());//担保结束日期
				vo.setGuaranteeRemark(dto.getGuaranteeRemark());//担保主体备注
				
			} catch (Exception e) {
			BaseLogUtils.error(logger, "-", "异常", e);
				throw new BaseException(EX_CODE.fetchExMsg("EX_A0001"));
			}
		}
		return vo;
	}
	
	public static ScmBscInfoDTO toDTO(ScmBaseInfoVO vo){
		ScmBscInfoDTO dto = new ScmBscInfoDTO();
		if(vo!=null){
			try {
				dto.setFncScmId(vo.getFncScmId());;
				dto.setBsFlotupRto(vo.getBsFlotupRto());
				dto.setCmtExrtSwp(vo.getCmtExrtSwp());
				dto.setCmtIntrtSwp(vo.getCmtIntrtSwp());
				dto.setCrId(vo.getCrId());
				dto.setCrtPsn(vo.getCrtPsn());
				dto.setCrtTm(vo.getCrtTm());
				dto.setDcnRate(vo.getDcnRate());
				dto.setEddt(vo.getEddt());
				dto.setExrtRskCntr(vo.getExrtRskCntr());
				dto.setExrtSwpBnk(vo.getExrtSwpBnk());
				dto.setExrtSwpFeert(vo.getExrtSwpFeert());
				dto.setExstExrtRsk(vo.getExstExrtRsk());
				dto.setExstIntrtRsk(vo.getExstIntrtRsk());
				dto.setFncCrdnlt(vo.getFncCrdnlt());
				dto.setFncInsId(vo.getFncInsId());
				dto.setFncIntrtTot(vo.getFncIntrtTot());
				dto.setFncScmNm(vo.getFncScmNm());
				dto.setFncTrm(vo.getFncTrm());
				dto.setIntrtRskCntr(vo.getIntrtRskCntr());
				dto.setIntrtSwpBnk(vo.getIntrtSwpBnk());
				dto.setIntrtSwpFeert(vo.getIntrtSwpFeert());
				dto.setIrr(vo.getIrr());
				dto.setIrtBs(vo.getIrtBs());;
				dto.setIsDel(vo.getIsDel());
				dto.setIsValid(vo.getIsValid());
				dto.setMrgnClCrdnlt(vo.getMrgnClCrdnlt());
				dto.setMrgnPct(vo.getMrgnPct());
				dto.setMrgnUseMtd(vo.getMrgnUseMtd());
				dto.setPdId(vo.getPdId());
				dto.setPrymMtd(vo.getPrymMtd());
				dto.setRepyTp(vo.getRepyTp());
				dto.setRmrk(vo.getRmrk());
				dto.setScmSt(vo.getScmSt());
				dto.setStdt(vo.getStdt());
				dto.setUpdTm(vo.getUpdTm());
				dto.setUptPsn(vo.getUptPsn());
				dto.setMrgnWthrInPay(vo.getMrgnWthrInPay());
				dto.setWthrFstPay(vo.getWthrFstPay());
				dto.setIrtTpcd(vo.getIrtTpcd());
				dto.setBusType(vo.getBusType());
				dto.setWthrSupAbr(vo.getWthrSupAbr());
				dto.setScmIntrt(vo.getScmIntrt());//
				dto.setIntrtMtdcd(vo.getIntrtMtdcd());//
				dto.setChrgList(toCharDTOList(vo.getChrgList()));
				dto.setIsGuarantee(vo.getIsGuarantee());//是否担保 1. 是 2.否
				dto.setGuaranteeBody(vo.getGuaranteeBody());//担保主体
				dto.setGuaranteeStart(vo.getGuaranteeStart());//担保开始日期
				dto.setGuaranteeEnd(vo.getGuaranteeEnd());//担保结束日期
				dto.setGuaranteeRemark(vo.getGuaranteeRemark());//担保主体备注
				
			} catch (Exception e) {
			BaseLogUtils.error(logger, "-", "异常", e);
				throw new BaseException(EX_CODE.fetchExMsg("EX_A0001"));
			}
		}
		return dto;
	}
	
	public static ScmChrgParaVO toChrgVO(ScmChrgParaDTO dto){
		ScmChrgParaVO vo = new ScmChrgParaVO();
		if(dto != null){
			try {
				vo.setChrgTpCd(dto.getChrgTpCd());
				vo.setCostAmt(dto.getCostAmt());
				vo.setCostCrdnlt(dto.getCostCrdnlt());
				vo.setCostInTpCd(dto.getCostInTpCd());
				vo.setCostNm(dto.getCostNm());
				vo.setCostPct(dto.getCostPct());
				vo.setFncScmId(dto.getFncScmId());
				vo.setLgcSn(dto.getLgcSn());
				vo.setPrePayDate(dto.getPrePayDate());
				vo.setRmrk(dto.getRmrk());
				vo.setWthrDdct(dto.getWthrDdct());
				vo.setMrgnUseMtd(dto.getMrgnUseMtd());//保证金使用方式  add by gengchunlan 20180626
				vo.setMrgnIs(dto.getMrgnIs());//是否保证金  add by gengchunlan 20180626
			} catch (Exception e) {
			BaseLogUtils.error(logger, "-", "异常", e);
				throw new BaseException(EX_CODE.fetchExMsg("EX_A0001"));
			}
		}
		return vo;
	}
	
	public static ScmChrgParaDTO toChrgDTO(ScmChrgParaVO vo){
		ScmChrgParaDTO dto = new ScmChrgParaDTO();
		if(vo != null){
			try {
				dto.setChrgTpCd(vo.getChrgTpCd());
				dto.setCostAmt(vo.getCostAmt());
				dto.setCostCrdnlt(vo.getCostCrdnlt());
				dto.setCostInTpCd(vo.getCostInTpCd());
				dto.setCostNm(vo.getCostNm());
				dto.setCostPct(vo.getCostPct());
				dto.setFncScmId(vo.getFncScmId());
				dto.setLgcSn(vo.getLgcSn());
				dto.setPrePayDate(vo.getPrePayDate());
				dto.setRmrk(vo.getRmrk());
				dto.setWthrDdct(vo.getWthrDdct());
				dto.setMrgnUseMtd(vo.getMrgnUseMtd());//保证金使用方式  add by gengchunlan 20180626
				dto.setMrgnIs(vo.getMrgnIs());//是否保证金  add by gengchunlan 20180626
			} catch (Exception e) {
			BaseLogUtils.error(logger, "-", "异常", e);
				throw new BaseException(EX_CODE.fetchExMsg("EX_A0001"));
			}
		}
		return dto;
	}
	
	public static List<ScmBaseInfoVO> toVOList(List<ScmBscInfoDTO> lstDto){
		List<ScmBaseInfoVO> voLst = new ArrayList<ScmBaseInfoVO>();
		if(lstDto!=null && lstDto.size()>0){
			for(ScmBscInfoDTO dto : lstDto){
				ScmBaseInfoVO vo = toVO(dto);
				voLst.add(vo);
			}
		}
		return voLst;
	}
	
	public static List<ScmChrgParaVO> toCharVOList(List<ScmChrgParaDTO> lstDto){
		List<ScmChrgParaVO> voLst = new ArrayList<ScmChrgParaVO>();
		if(lstDto!=null && lstDto.size()>0){
			for(ScmChrgParaDTO dto : lstDto){
				ScmChrgParaVO vo = toChrgVO(dto);
				voLst.add(vo);
			}
		}
		return voLst;
	}
	
	public static List<ScmChrgParaDTO> toCharDTOList(List<ScmChrgParaVO> lstVo){
		List<ScmChrgParaDTO> dtoLst = new ArrayList<ScmChrgParaDTO>();
		if(lstVo!=null && lstVo.size()>0){
			for(ScmChrgParaVO vo : lstVo){
				ScmChrgParaDTO dto = toChrgDTO(vo);
				dtoLst.add(dto);
			}
		}
		return dtoLst;
	}
}
